package com.larly.model.vo;

import com.larly.model.domain.User;
import lombok.Data;
import org.springframework.beans.BeanUtils;

import java.io.Serializable;
import java.util.Date;

@Data
public class UserVO implements Serializable {


    private static final long serialVersionUID = -7911382169116973389L;

    /**
     * 用户ID
     */
    private Integer id;

    /**
     * 登录用户名
     */
    private String username;

    /**
     * 显示昵称
     */
    private String nickname;

    /**
     * 头像URL
     */
    private String avatar;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 角色(admin/user)
     */
    private String role;

    /**
     * 分数
     */
    private Integer score;

    /**
     * 出生日期
     */
    private Date birthDate;

    /**
     * 电话号码
     */
    private Integer phone;

    /**
     * 性别 - 1表示男，0表示女
     */
    private Integer gender;

    /**
     * 粉丝数
     */
    private Long fans;

    /**
     * 发布笔记数
     */
    private Long notes;

    /**
     * 关注数量
     */
    private Long follow;

    /**
     * 获取赞数(笔记)
     */
    private Long awards;

    /**
     * 用户简介
     */
    private String bio;

    /**
     * 用户地区
     */
    private String region;

    /**
     * 状态(1-正常,0-禁用)
     */
    private Integer status;

    /**
     * 注册时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 转换成VO
     */
    public static UserVO toVO(User user) {
        UserVO userVO = new UserVO();
        BeanUtils.copyProperties(user, userVO);
        return userVO;
    }

    /**
     * 转换成实体
     */
    public static User toEntity(UserVO userVO) {
        User user = new User();
        BeanUtils.copyProperties(userVO, user);
        return user;
    }

}
